As the value and use of information continue to increase, individuals and businesses seek additional ways to process and store information. One option available to users is information handling systems. An information handling system generally processes, compiles, stores, and/or communicates information or data for business, personal, or other purposes, thereby allowing users to take advantage of the value of the information. Because technology and information handling needs and requirements vary between different users or applications, information handling system's may also vary regarding what information is handled, how the information is handled, how much information is processed, stored, or communicated, and how quickly and efficiently the information may be processed, stored, or communicated. The variations in information handling systems allow for information handling systems to be general or configured for a specific user or specific use such as financial transaction processing, airline reservations, enterprise data storage, or global communications. In addition, an information handling system may include a variety of hardware and software components that may be configured to process, store, and communicate information and may include one or more computer systems, data storage systems, and networking systems.
For a variety of reasons, information handling system software, including the basic input/output system (BIOS), as well as driver software, whether native to the operating system (OS) or provided by a third party, may require or benefit from periodic updates. For the sake of brevity and clarity, such software is collectively referred to herein as firmware. Ensuring that firmware updates are implemented consistently, uniformly, and efficiently so that all systems have a known and uniform state can be difficult.
Existing methods to update firmware in a server include updates using in-band or OS-controlled communication channels. In-band software updates are undesirable because they consume central processing unit (CPU) compute cycles, network bandwidth, and other resources that are designed to operate on workload applications. As such, in-band updates may require some form of dedicated downtime during which updates may be installed without disrupting or otherwise impacting workload applications.
The primary alternative to in-band updates, predictably referred to as out-of-band updates, generally refer to processes for updating firmware using a service processor (SP), access controller, remote access controller (RAC), management controller, baseboard management controller (BMC), or the like. While conventional out-of-band updating alleviates, at least to some extent, the primary drawbacks of in-band updates, out-of-band updates require additional networking infrastructure for basic configuration and setup. Generally, the remote access controller requires some form of Internet access, whether wireless or otherwise, to enable remote management and customers may be unaware or unskilled regarding the requirements of a functional out-of-band management network.
Additionally, whether in-band or out-of-band, the firmware update process generally involves a repetitive transmission of a common block of data to multiple recipients, e.g., a single driver being copied from a management system to multiple servers or to multiple remote access controllers.